package yydy.pattern.structure.decorator.example;

import yydy.pattern.common.impl.shape.Circle;
import yydy.pattern.common.impl.shape.Rectangle;
import yydy.pattern.common.interfaces.Shape;

/**
 * @author LY
 * @description: TODO
 * @title: DecoratorPatternDemo
 * @projectName yydy_learn
 * @date 2020/11/4
 */
public class DecoratorPatternDemo {
    public static void main(String[] args) {
        Shape circle = new Circle();
        ShapeDecorator redCircle = new RedShapeDecorator(new Circle());
        ShapeDecorator redRectangle = new RedShapeDecorator(new Rectangle());
        //Shape redCircle = new RedShapeDecorator(new Circle());
        //Shape redRectangle = new RedShapeDecorator(new Rectangle());
        System.out.println("Circle with normal border");
        circle.draw();

        System.out.println("\nCircle of red border");
        redCircle.draw();

        System.out.println("\nRectangle of red border");
        redRectangle.draw();
    }
}
